草庐IT

c++ - Swig -includeall 除了...

全部标签

c++ - 获取磁盘转速示例代码

我不太擅长VC++,但有没有人有示例代码来获取计算机中磁盘的转速。我一直致力于检测SSD驱动器,整天研究的一个解决方案是获取转速,因为SSD的转速为0rpm,这可能是检测SSD驱动器的唯一方法。 最佳答案 来自googlewmissddetectThereisanNVcachemanagerinterfaceusedforReadyDrivewhichisnewtoVista.IthinkitistestingNV_FEATURE_PARAMETER'sNVReadSpeedandNVWrtSpeedvalues.Windows7d

c++ - gets() 正式弃用了吗?

这个问题在这里已经有了答案:Whyisthegetsfunctionsodangerousthatitshouldnotbeused?(13个答案)关闭去年。基于mostrecentdraft对于C++11,C++引用ISO/IEC9899:1999/Cor.3:2007(E)以了解C库函数的定义(根据§1.2[intro.refs]/1)。基于mostrecentdraft在C99TC3中,gets函数已过时,已弃用。(根据§7.26.9/2)我可以肯定地说gets()在C和C++中都被弃用了吗?

c++ - 相当于缓冲区上的 fgets?

我最初使用fgets()逐行解析文件。现在我改变了一些东西,所以我已经把我的整个文件放在一个缓冲区里了。我仍然喜欢逐行读取该缓冲区以进行解析。是否有为此设计的东西,或者我是否需要制作一个循环来检查此时的0x0Achar? 最佳答案 memchr(有一点你自己的包装代码,以memcpy结尾)是完全等价的-像fgets它需要一个它将处理的最大长度(应该是剩余输入缓冲区大小和输出缓冲区大小的最小值)并扫描直到它找到所需的字符(将是'\n')或运行输入/输出空间不足。请注意,对于已经在内存缓冲区中的数据,您可能希望跳过复制到单独输出缓冲区的

c++ - 是否有从代码库中删除第三方 C 和 C++ 库的好技巧或工具? (OS X 或 Linux)

我正在减少和隔离我对某些库的使用。我编写的许多现有程序直接使用这些库。我想要编译器(在这种情况下是GCC和/或Clang)或一些工具来帮助我在我的代码库中识别这些用途。简而言之,我想在整个代码库中毒害这些库的使用,除了它们将由一个库使用,并且一个库将对我的代码库中的其他模块可见。问题:1)你知道可以帮助我解决这个问题的工具吗?2)或者你能推荐一些策略来使这个过程更容易吗?条件和详情:删除它们的包含不是一种选择。由于我的代码库的大小和我想要隔离的符号数量,搜索无效。考虑到代码库的复杂性和要删除的符号数量,使用重构工具将过于乏味。由于第三方库中声明的数量,单独弃用符号不是一种选择。第三方库

c++ - 外部关键字 "missing type specifier"

我正在使用VisualC++Express创建一个DLL,并且在声明时externValveInterfaces*VIFace在Required.h中,编译器告诉我ValveInterfaces没有定义。(我想将VIFace暴露给任何文件,包括Required.h)这是我的文件结构:DLLMain.cpp#include"Required.h"//requiredheaderfiles,suchasWindows.handtheSDKValveInterfaces*VIFace;//therestofthefileRequired.h#pragmaonce//includeWindow

c++ - 在 C : Derived to base conversions 中包装 C++

我正在将一个简单的C++继承层次结构包装到“面向对象的”C中。我试图弄清楚在将指向C++对象的指针视为指向不透明C结构的指针时是否存在任何问题。特别是在什么情况下派生到基的转换会出现问题?类本身比较复杂,但层级较浅,仅采用单继承://AbaseclasswithlotsofimportantsharedfunctionalityclassBase{public:virtualvoidsomeOperation();//Moreoperations...private://Data...};//OneofseveralderivedclassesclassFirstDerived:pub

c++ - 对许多函数调用进行错误检查

有时当我在C++/C中编程时,我最终会多次调用同一个函数,我想知道检查所有这些调用错误的最有效方法是什么?使用ifelse语句会占用大量代码并且看起来很丑陋。我想出了自己的错误检查方法,也许我应该使用更好的方法。interrs[5]={0};errs[0]=functiona(...);errs[1]=functiona(...);...errs[5]=functiona(...);for(inti=0;i注意:我知道使用try和catch可能对C++更好,因为它会通过在第一个错误时抛出异常来解决这个问题,但是问题是那就是它与许多返回错误代码的函数不兼容,例如WindowsAPI。谢谢

c++ - 双值的 sprintf 格式化

我在UNIX中使用sprintf()将double值转换为字符串时遇到一个特定问题。例如我有两个值:doublea=0.009984354523452;doubleb=0.01;在转换时,我正在使用:sprintf(somestringvar,"Doublevalue:%.15f\n",a);sprintf(diffstringvar,"Doublevalue:%.15f\n",b);转换为字符串。我的问题是'a',值打印正确,但对于'b'的值,在尾端附加了0。请提供将“a”和“b”表示为精确值的任何常用方法。 最佳答案 打印b时得

c++ - 简单的 Postgresql libpq 代码太慢?

我正在使用libpq开发postgresql。下面给出的代码花费了大量时间(代码末尾给出的时间)。#include"stdafx.h"#include#include#includestaticvoidexit_nicely(PGconn*conn){PQfinish(conn);exit(1);}int_tmain(intargc,_TCHAR*argv[]){constTCHAR*conninfo;PGconn*conn;PGresult*res;intnFields,i,j;if(argc>1)conninfo=argv[1];elseconninfo=_T("hostaddr=

c++ - 从不兼容类型 'int' 分配给 [custom typdef]

在我的main.c文件的一个方法中,我声明了变量irq_raised,它是irq_type类型。我在另一个文件的typedef中定义了irq_type,并将其#import到main.c的顶部。typedefenum{IRQ_NONE=0x0000,IRQ_VBLANK=0x0001,IRQ_HBLANK=0x0002,IRQ_VCOUNT=0x0004,IRQ_TIMER0=0x0008,IRQ_TIMER1=0x0010,IRQ_TIMER2=0x0020,IRQ_TIMER3=0x0040,IRQ_SERIAL=0x0080,IRQ_DMA0=0x0100,IRQ_DMA1=0x